﻿//-------------------------------------------------------------------
//	Copyright (c) 2010-2014  Zhirnov Andrey
//	This file is part of the "UX Standard Lib" project.
//	See copyright notice in "UX_STL_Ext.h".
//-------------------------------------------------------------------

#ifndef _UXS_MATH_TYPES_EXT_H
#define _UXS_MATH_TYPES_EXT_H

#pragma once

#include "../../stl_core/ux_stl_core.h"

namespace UX_STL
{
namespace UXMathExt
{
	using namespace UXTypes;
	using namespace UXMath;

	
	// Transform
	template <typename T> struct TTransform;

	typedef TTransform< float32 >		transform_f;
	typedef TTransform< float64 >		transform_d;
	typedef TTransform< real >			transform_t;

	
	// Sphere
	template <typename T> struct TSphere;

	typedef TSphere< float32 >			sphere_f;
	typedef TSphere< float64 >			sphere_d;
	typedef TSphere< real >				sphere_t;
	

	// AABB
	template <typename T> struct TAABBox;

	typedef TAABBox< float32 >			aabb_f;
	typedef TAABBox< float64 >			aabb_d;
	typedef TAABBox< real >				aabb_t;


	// Camera
	template <typename T> struct TCamera;

	typedef TCamera< float32 >			camera_f;
	typedef TCamera< float64 >			camera_d;
	typedef TCamera< real >				camera_t;


	// Frustum
	template <typename T> struct TFrustum;

	typedef TFrustum< float32 >			frustum_f;
	typedef TFrustum< float64 >			frustum_d;
	typedef TFrustum< real >			frustum_t;


//-------------------------------------------------------------------

}	// UXMathExt
}	// UX_STL

#endif	// _UXS_MATH_TYPES_EXT_H